package com.fancy.projecty.util;

import org.apache.shiro.authz.AuthorizationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;


/**
 * 全局的的异常拦截器（拦截所有的控制器）（带有@RequestMapping注解的方法上都会拦截）
 *
 * @author fengshuonan
 * @date 2016年11月12日 下午3:19:56
 */
@ControllerAdvice
public class GlobalExceptionHandler {

	private Logger log = LoggerFactory.getLogger(this.getClass());


	/**
	 * 拦截无权限异常
	 * 我觉得正常情况下 没有权限的页面也不会让用户看到
	 * @return
	 */
	@ExceptionHandler(AuthorizationException.class)
	@ResponseBody
	public ResultVO AuthorizationException(Exception e) {

		return new ResultVO(false,403,"没有权限");
	}


	@ExceptionHandler(TokenExceptionUtil.class)
	@ResponseBody
	public Object TokenExceptionUtil(ExceptionUtil e) {

		e.printStackTrace();
//		return new JsonResult(e,999);
		return new ResultVO(false,999,e.getMessage());
	}


	@ExceptionHandler(ExceptionUtil.class)
	@ResponseBody
	public Object handleException(ExceptionUtil e) {

		e.printStackTrace();

		return new ResultVO(false,500,e.getMessage());
	}


}
